package com.stock.service;

import com.stock.domain.vo.request.*;
import com.stock.domain.vo.response.*;

import java.util.List;

public interface UserServiceExt {
    Response<LoginRespVoExt> login(LoginRequest vo);

    Response<PageResponse> pageUsers(UserPageReqVo userPageReqVo);

    /**
     * 添加用户信息
     * @param vo
     * @return
     */
    Response<String> addUser(UserAddReqVo vo);

    /**
     * 更新用户信息
     * @param vo
     * @return
     */
    Response<String> updateUser(UserEditReqVO vo);

    /**
     * 获取用户具有的角色信息，以及所有角色信息
     * @param userId
     * @return
     */
    Response<UserOwnRoleRespVo> getUserOwnRole(Long userId);

    /**
     * 更新用户角色信息
     * @param vo
     * @return
     */
    Response<String> updateUserOwnRoles(UserOwnRoleReqVo vo);

    /**
     * 批量删除用户信息
     * @param userIds
     * @return
     */
    Response<String> deleteUsers(List<Long> userIds);

    /**
     * 根据用户id查询用户详情信息
     * @param id 用户id
     * @return
     */
    Response<UserInfoRespVo> getUserInfo(Long id);
}
